﻿//小红拿到了一个长度为n的字符串，她准备选取一段子串，满足该子串中字母的种类数量在[l, r]之间。
//小红想知道，一共有多少种选取方案？
//
//输入描述 :
//	第一行输入三个正整数n, l, r
//	第二行输入一个仅包含小写字母的字符串。1≤n≤200000,1≤l≤r≤26
//
//输出描述 :
//	合法的方案数。
//
//输入
//	3 2 2
//	aba
//输出
//	3
//
//输入
//	5 1 2
//	abcda
//输出
//	9
//
//输入
//	10 2 4
//	abcaacbdef
//输出
//	33

#include <iostream>
#include <string>
using namespace std;
int n, l, r;
string s;
// 找出字符种类在 [1, x] 之间的⼦串的个数
long long find(int x)
{
	if (x == 0) return 0;
	// 滑动窗⼝
	int left = 0, right = 0;
	int hash[26] = { 0 }, kinds = 0; // 统计窗⼝内字符种类的个数
	long long ret = 0;

	while (right < n)
	{
		if (hash[s[right] - 'a']++ == 0) kinds++;
		while (kinds > x)
		{
			if (hash[s[left] - 'a']-- == 1) kinds--;
			left++;
		}
		ret += right - left + 1;
		right++;
	}

	return ret;
}
int main()
{
	cin >> n >> l >> r >> s;

	cout << find(r) - find(l - 1) << endl;

	return 0;
}